package bom.dao.organization;


import bom.dao.GenericDao;
import bom.pojo.organization.User;
import bom.pojo.query.QueryUser;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @Author: Fancyears·Maylos·Malvis
 * @Description:
 * @Date: Created in  2018/11/27 15:11
 * @Modified By:
 */
@Mapper
public interface UserDao extends GenericDao<User, QueryUser> {

    /**
     * 功能描述：统计组织架构底下的用户
     *
     * @param queryUser
     * @return
     */
    int countGroupUser(QueryUser queryUser);

    /**
     * 功能描述：查询组织架构底下的用户
     *
     * @param queryUser
     * @return
     */
    List<User> findGroupUserByPage(QueryUser queryUser);

    /**
     * 功能描述：更新用户状态为可用或者不可用
     *
     * @param user
     * @return
     */
    int userControl(User user);

    /**
     * 功能描述：根据账号来获取用户信息
     *
     * @param login
     * @return
     */
    User findByLogin(String login);

    /**
     * 功能描述：更新用户的最迟登陆时间
     *
     * @param user
     * @return
     */
    int updateLogin(User user);

    //by haozt on 7/23/2018
    //更改用户密码
    int updatePassword(User user);

    /**
     * 根据部门id 获取当前部门下的用户
     *
     * @param groupId
     * @return by haozt on 8/17/2018
     */
    List<User> findUserByGroupId(String groupId);

    /**
     * 获取当前全部用户
     *
     * @return by haozt on 8/20/2018
     */
    List<User> findAllUser();

    /**
     * 获取当前用户 根据id
     * param state 账户状态 启用 禁用
     * param id 用户id
     *
     * @return by haozt on 8/21/2018
     */
    User findUserById(Map<String, Object> map);
}